home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 12 / Cream of the Crop 12 (Part II) / Cream of the Crop 12 (Part II).iso / BBS / GOTHIK15.ZIP / IGM.DOC < prev    next >
Encoding:
Text File  |  1996-01-10  |  4.8 KB  |  106 lines

  1. GOTHIK IGM Documentation
  2. (C) Copyright 1996 Dan Shaurette
  3. ================================
  4.  
  5. What is an IGM?
  6. ---------------
  7.    An IGM is an In Game Module, and is essentially a game inside a game.  I 
  8. first encountered the idea with Seth Able's legendary Legend Of The Red 
  9. Dragon.  He set aside a section of his game to run other games, which use the 
  10. same player database as L.O.R.D., and he released the Pascal data structure 
  11. used to access that database into the public domain.  Since then, LORD has 
  12. become a very popular BBS door because of the wide variety of IGMs that exist 
  13. now.
  14.    I want GOTHIK to allow the same creativity to emerge from others, so I 
  15. added the same capability to it.  And, to go one step further, I not only am 
  16. releasing the structure (see below), but the source code to the first IGM 
  17. written for GOTHIK, The Blue Moon Tavern, as well.
  18.  
  19.  
  20. What IGMs currently exist for GOTHIK?
  21. -------------------------------------
  22.    Currently, the Blue Moon Tavern is the only IGM written.  I wrote it and am 
  23. making the source code available to everyone (that knows C or could convert it 
  24. to whatever language you prefer.)  You may disect the source as you see fit, 
  25. producing new and different programs.  You may make other, better tavern IGMs, 
  26. but please, don't rerelease different Blue Moon Taverns.
  27.  
  28.  
  29. How do I setup an IGM?
  30. ----------------------
  31.    GOTHIK has a file called "3RDPARTY.DAT" which it reads to determine what 
  32. IGMs exist for it to run.  The structure is simple and is as follows:
  33.  
  34. ;Third Party data file for GOTHIK IGMs
  35. ;=====================================
  36. ;The lines need to be paired in threes as follows:
  37. ;The first line determines who can play: 0=Human, 1=Vamp, 2=Both
  38. ;The second line is the string that is displayed to the player
  39. ;The third line is the full path and filename of IGM to run (with parameters)
  40. ;example:
  41. ;2
  42. ;Malcolm's CASINO
  43. ;C:\RENEGADE\GOTHIK\CASINO\CASINO.EXE
  44. 2
  45. The Blue Moon Tavern
  46. C:\GOTHIK\BlueMoon.BAT
  47.  
  48.  
  49. How do I write my own IGM?
  50. --------------------------
  51.    Three files are at your disposal for your IGM to take advantage of.
  52.    The first is the drop file that GOTHIK used to gather info about the 
  53. player, you can read it for the same reason.
  54.    Second, there is a file called "INPLAY.DAT" that has two purposes.  The 
  55. first is to let other nodes that want to run GOTHIK know that someone else is 
  56. playing it now and that they can't.  It's other purpose is that it holds a 
  57. number, the record number of the player.  This record number is the index into 
  58. "GOTHIK.PLR", which is the third file you can use.
  59.    "GOTHIK.PLR" is the database of GOTHIK's players.  What follows is the C 
  60. data structure that forms the records in "GOTHIK.PLR":
  61.  
  62. struct PlayerData { //// This is the structure found in "GOTHIK.PLR".
  63.    char name[36]; ////// The player's handle/real name from drop file.
  64.    char gameName[26]; // The player's handle inside GOTHIK.
  65.    char sex; /////////// Their sex, 'M' or 'F'.
  66.    char fluff1; //////// Alignment fluff (ignore).
  67.    char lastOn[9]; ///// Date the player played last in "mm-dd-yy" format.
  68.    char fluff2; //////// More alignment fluff.
  69.    char birthdate[9]; // Player's Birthdate in "mm-dd-yy" format.
  70.    char fluff3; //////// Last piece of fluff.
  71.    char attacked[26]; // gameName of who attacked player,"~" if not attacked.
  72.    
  73.    short int  level;      /// Player's level (1 to 13).
  74.    short int  exp;      ///// Player's experience points.
  75.    short int  mortal;      // 0 = Human, 1 = Vampire.
  76.    short int  rating;      // 2 = LEWD, 1 = RUDE, 0 = PRUDE.
  77.    short int  timesOn; ////// Number of times the player played today.
  78.    short int  HP; /////////// Player's Hit Points left.
  79.    short int  maxHP; //////// Maximum amount of HP.
  80.    short int  moves; //////// Moves left to make.
  81.    short int  maxMoves; ///// Maximum amount of moves.
  82.    short int  weapon; /////// Weapon type owned by the player.
  83.    short int  weaponPlus; /// A modifier to the weapon.
  84.    short int  ammo; ///////// Ammunition type owned by the player.
  85.    short int  ammoPlus; ///// A modifier to the ammo.
  86.    short int  ammoAmount; /// Amount of ammunition remaining.
  87.    short int  defense; ////// Type of ward that the player has (if Human).
  88.    short int  defensePlus; // Modifier to the ward.
  89.    
  90.    short int  Str, Int, Wis, Dex, Con, Cha; // D&D style characteristics.
  91.    short int  Willpower, Humanity, Thirst; /// New-style characteristics.
  92.    short int  Faith, Inginuity;
  93.    
  94.    long inBank; ///////////// The amount of cash the player has in the bank.
  95.    long onHand; ///////////// The amount of cash the player has on hand.
  96. };
  97.  
  98.  
  99. If you have any other questions, feel free to contact me at:
  100.  
  101. Dan Shaurette
  102. 9201 N. 29th Ave. #63-231
  103. Phoenix, AZ  85051
  104.  
  105. or through Internet Email at: dshauret@indirect.com
  106.